const express = require('express');
//express-session  实现 session 功能
//connect-mongo   连接数据库
const session = require("express-session");
const MongoStore = require('connect-mongo');

const app = express();

//设置 session 的中间件
app.use(session({
  name: 'sid',       //设置cookie的name，默认值是：connect.sid
  secret: 'atguiguxxxdaefawefawfwafwafe', //参与加密的字符串（又称签名）
  saveUninitialized: false, //是否为每次请求都设置一个cookie用来存储session的id
  resave: true,//是否在每次请求时重新保存session
  store:MongoStore.create({
      mongoUrl: 'mongodb://127.0.0.1:27017/project' //数据库的连接配置
  }),
  cookie: {
      httpOnly: true, // 开启后前端无法通过 JS 操作
      maxAge: 1000 * 300 // 这一条 是控制 sessionID 的过期时间的！！！
  },
}));

//创建路由规则
app.get('/login', (req, res) => {
  //写入 session
  req.session.name = 'zhangsan';
  req.session.email = 'zs@163.com';
  req.session.uid = '123456';
  res.send('登录成功');
});

//购物车
app.get('/cart', (req, res) => {
  console.log(req.session.name);
  res.send('购物车');
});

//退出登录的操作
app.get('/logout', (req, res) => {
  //清除 session
  req.session.destroy(() => {
    res.send('退出登录');
  })
});

app.listen(8080, () => {
  console.log('启动....')
})